//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// 
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Lesser General Public License for more details.
// 
// You should have received a copy of the GNU Lesser General Public License
// along with this program.  If not, see http://www.gnu.org/licenses/.
//

cplusplus {{
    #include "info.h"
}};

struct HostInfo;
struct ChannelInfo;
struct ChannelPhysicalInfo;
struct DataTransmitInfo;

message DataFromGeneratorMsg
{
    int id;
    int dataPacketSize;
    int dataSendingTime;
    int senderId;
    int receiverId;
};

message MACAssignedDataMsg
{
    bool needSend;
    int id;
    int dataPacketSize;
    int dataSendingTime;
    int senderId;
    int receiverId;
};

message RequestReceivedConfirmMsg
{
  	bool confirm;
  	int id;
};

message RequestSendDataMsg
{
   	
};

message RequestChannelInfoMsg
{
    bool needSend;
    int senderId;
    int receiverId;   
};

message ChannelInfoMsg
{
    int senderId;
    int receiverId;
    ChannelInfo channelInfo;
};

message RequestChannelPhysicalInfoMsg
{
    bool needSend;
    int senderId;
    int receiverId;
    ChannelInfo channelInfo;
};

message ChannelPhysicalInfoMsg
{
    int senderId;
    int receiverId;
	ChannelPhysicalInfo channelPhysicalInfo;
};

packet DataMsg
{
    int senderID;
    int receiverID;
    simtime_t timeStamp;
    bool isFirst;
    bool isLast;
    int dataRate;
};

message DataConfirmMsg
{
    bool successfulFlag;
    int receivedBitSize;
};

message EndSimuMsg
{
    
};

message DeleteHostMsg
{
    
};

message DataTransmitInfoMsg
{
    int senderID;
    int receiverID;
    DataTransmitInfo dataTransmitInfo;
};